import request from '@/utils/request'

/**
 * 上传文件
 * @param {FormData} formData 
 * @returns {Promise}
 */
export function uploadFile(formData) {
  return request({
    url: '/file/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 下载文件
 * @param {number} id 
 * @returns {Promise}
 */
export function downloadFile(id) {
  return request({
    url: `/file/download/${id}`,
    method: 'get',
    responseType: 'blob'
  })
}

/**
 * 获取文件列表（永久存储，type=2）
 * @param {number} pageNum 
 * @param {number} pageSize 
 * @returns {Promise}
 */
export function getFileList(pageNum = 1, pageSize = 10) {
  return request({
    url: '/file/list',
    method: 'get',
    params: { pageNum, pageSize }
  })
}

/**
 * 通过文件码获取文件信息（type=0或1）
 * @param {string} code 
 * @returns {Promise}
 */
export function getFileByCode(code) {
  return request({
    url: `/file/info/${code}`,
    method: 'get'
  })
}

/**
 * 通过ID获取文件详情（type=2）
 * @param {number} id 
 * @returns {Promise}
 */
export function getFileDetail(id) {
  return request({
    url: `/file/detail/${id}`,
    method: 'get'
  })
}

/**
 * 删除文件（需要密钥）
 * @param {number} id 
 * @param {string} secretKey 
 * @returns {Promise}
 */
export function deleteFile(id, secretKey) {
  return request({
    url: `/file/delete/${id}/${secretKey}`,
    method: 'delete'
  })
}

